import axios from 'axios';
import { ElMessage } from 'element-plus';

const axiosInstance = axios.create({
  baseURL: process.env.VUE_APP_BASE_URL,
  timeout: 5000,
  headers: {"Content-Type": "application/json"}
});

//请求拦截器
axiosInstance.interceptors.request.use(config => {
  const token = localStorage.getItem('token');
  if (token) {
    config.headers['Authorization'] = token;
  }
  return config;
}, error => {
  return Promise.reject(error);
});

// 响应拦截器
axiosInstance.interceptors.response.use(response => {
  return response;
}, error => {
  if (!error.response) {
    // 网络错误处理
    ElMessage.error('网络连接失败，请检查您的网络');
  } else {
    // 根据返回状态码处理错误
    switch (error.response.status) {
      case 401:
        ElMessage.error('未授权，请重新登录');
        break;
      case 403:
        ElMessage.error('拒绝访问');
        break;
      case 404:
        ElMessage.error('请求地址错误');
        break;
      case 500:
        ElMessage.error('服务器内部错误');
        break;
      default:
        ElMessage.error('请求失败,请检测网络');
    }
  }
  return Promise.reject(error);
});

export default axiosInstance;
